///////////////////////////////
// Analizador léxico ANTLR
///////////////////////////////

lexer grammar AnalexANTLR;

options {
  language = Java;
}

@header {
  package practpl.seis;
}

@members {
     private ArrayList<RecognitionException> errors = new ArrayList<RecognitionException>();
     public ArrayList<RecognitionException> getErrors() {
        return errors;
     }
     @Override
     public void reportError (RecognitionException e) {
        String msg = getErrorMessage(e, getTokenNames());
        System.err.println(msg);
        errors.add(e);
     }
}

EXPRESION: 'expresion';
EXP_MULT: 'exp_mult';
EXP_BASE: 'exp_base';
NUMERO: 'NUMERO';
EOF_ : 'EOF';
BLANCO : (' '|'\t'|'\r\n') {skip();};

fragment LETRA: ('a'..'z')|('A'..'Z');
IDENT: (LETRA)+(LETRA | BARRABAJA);

COMILLAS: '"';
SEPARACOM : '";"';

PARENTESISACOM: COMILLAS PARENTESISA COMILLAS;
PARENTESISCCOM: COMILLAS PARENTESISC COMILLAS;

CADENA: '"' (~('"'))* '"';

MAS: '+';
MENOS: '-';
MULT: '*';
DIV: '/';
COLON: ':';
BARRABAJA : '_';
OR: '|';

PARENTESISA: '(';
PARENTESISC: ')';
SEPARADOR : ';' ;
